package com.gonsin.gnews.example.sender;

import com.gonsin.gnews.annotations.GNewsSender;
import com.gonsin.gnews.annotations.IBaseSender;
import com.gonsin.gnews.annotations.model.GNewsBody;
import com.gonsin.gnews.annotations.model.GNewsContext;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.Collection;

/**
 * 模拟短信发送
 */
@Slf4j
@Component
@GNewsSender(platform = "sms", platformName = "短信", supportContent = true)
public class CommonTestSender implements IBaseSender<String> {


    /**
     * 消息发送器 需要实现的方法
     * @param context 短信环境，用于获取 发送器的config 和  edificeKey
     * @param newsBody 消息的文本内容，通过  使用supportContent = true、supportXXXX = true的方式使对应的getContent方法可以使用，详情ctrl 点击@GNewsSender 查看详情
     * @param targets 发送的目标
     */
    @Override
    public void sendNews(GNewsContext context, GNewsBody newsBody, Collection<String> targets) {

        // 通过 getConfiguration 获取该发送器的配置
        CommonConfig config = context.getConfiguration();

        log.info("获取到的配置项内容为 {}", config);
        log.info("向【{}】发送短信内容：{}", targets, newsBody.getContent());
    }
}
